The LDPC code is a block-based code. The encoder processes blocks of K bits and delivers blocks of N bits. Thus, N-K redundancy bits are added. These N-K bits are called “parity bits”. The coding rate (or code rate) is defined by the ratio K/N. The lower the coding rate, the higher the number of redundancy bits, and, hence, the greater the protection against noise of the transmission channel.
These N-K bits are calculated with the help of a parity matrix H. The LDPC code is therefore also a code based on a matrix. This matrix has N-K rows and N columns and includes “1s” and of “0s”, with a small number of “1s” relative to the number of “0s”. This is the reason why codes of this type based on such a matrix are called “LDPC codes”, that is to say low-density codes. The encoded block BLC, of N bits, is calculated by solving the equation HBLCT=0, where H denotes the parity matrix and T the “transpose” function.
On the decoder side, the erroneous bits are corrected on the basis of the relationships between the coded items of the block. These relationships are given by the parity matrix H. The decoder uses internal metrics corresponding to the “1s” of the matrix H. The matrix H corresponds to the Tanner graph of the LDPC code comprising so-called check nodes and bit nodes interlinked by the path of the graphs that represent the messages exchanged iteratively between the nodes thus linked. These metrics are updated row-wise (updating of the check nodes) by taking account of the internal metrics of one and the same row. Thereafter, the decoder updates these metrics column-wise (updating of the bit nodes) by taking account of the internal metrics in one and the same column and also of the corresponding item at the input of the decoder that originates from the transmission channel. An iteration corresponds to the updating of the check nodes for all the internal metrics, followed by the updating of the bit nodes for all the internal metrics.
The decoding of a block uses several iterations. The values of the decoded bits, also called “hard decisions”, are obtained by adding together the internal metrics column-wise with the items received and by taking the sign of the result. In other words, the sign of the result provides the value “0” or “1” of the bit while the absolute value of the result gives a confidence (probability) indication for this “0” or “1” logic value.
The LDPC-type codes are of interest since they make it possible to obtain very low bit error rates (BER) on account of the iterative nature of the decoding algorithm. Several iterative decoding algorithms exist for decoding LDPC codes, for example, the “belief propagation” (BP) classical algorithm well known to the person skilled in the art.
The duration of decoding of a block is directly related to the number of iterations used. Thus, to achieve a given bit rate, a maximum number of iterations is defined for each coding rate and each block will be decoded with the same number of iterations. For example, the maximum number of iterations may be fixed at 50. That being the case, if the decoding has not converged after these 50 iterations a reduction in the decoding performance results.
One possible approach may be to increase the maximum number of iterations permitted per block and in fixing it for example at 60. However, in this case, the bit rate would be divided by 6/5 because the duration of decoding of a block would be greater.